iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 12
0
自我挑戰組

Android的學習歷程系列 第 12

[Day 12]Android自定義Listener(java)

  • 分享至 

  • xImage
  •  

在android中有很多物件內有提供listener可以使用,當自己創建一個全新的物件時也可以自己自訂符合需求的監聽事件,今天要來說明自訂物件的Listener創建方法。

首先創建一個自訂view,在裡面創建一個interface這個將用來創建我們的方法名稱,之後在下方創建一個setOnSwipeListener這樣便完成初步的設定。

public class SwipeView extends View {
    private OnSwipeListener onSwipeListener;

    public SwipeView(Context context) {
        super(context);
    }

    @Override
    public boolean onTouchEvent(MotionEvent event) {
        return false;
    }

    public interface OnSwipeListener {
        void startEvent(SwipeView swipeView) ;
    }

    public void setOnSwipeListener(OnSwipeListener onSwipeListener) {
        this.onSwipeListener = onSwipeListener;
    }

}

在來設置我們要何時觸發事件,在onTouchEvent中放上點擊事件,如果要在其中做設定只要使用onSwipeListener便能夠成功設定我們需要觸發的時機,現在只要點擊這個view便會觸發自訂的監聽事件。

public class SwipeView extends View {
    private OnSwipeListener onSwipeListener;

    public SwipeView(Context context) {
        super(context);
    }

    @Override
    public boolean onTouchEvent(MotionEvent event) {
        if (event.getAction() == MotionEvent.ACTION_DOWN) {
            onSwipeListener.startEvent(SwipeView.this);
            return true;
        }

        return false;
    }

    public interface OnSwipeListener {
        void startEvent(SwipeView swipeView) ;
    }

    public void setOnSwipeListener(OnSwipeListener onSwipeListener) {
        this.onSwipeListener = onSwipeListener;
    }
}

只要有用到swipeView時便能設置我們剛才的監聽事件。

swipeView.setOnSwipeListener(new SwipeView.OnSwipeListener() {
            @Override
            public void startEvent(SwipeView swipeView){
              
            }

        });

成功看到剛才創建的監聽事件的,這樣子便能夠自己自訂出所需要的Listener。


上一篇
[Day 11]Android程式設計-使用OpenData資料製作app(七)(kotlin)
下一篇
[Day 13]Android-RecyclerView的使用
系列文
Android的學習歷程30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言